Razor語法內包含了C#與HTML,主要作用是的 C#程式嵌入到 HTML 中的標記語法內,比如下面這段code將item.id嵌入HTML的標籤內
<p>@item.id</p>
宣告變數
@string str="字串"
顯示變數
<p>@str</p>
宣告多行C#變數
@{
string str="字串";
int no=123;
int[] arr={1,2,3,4,5};
}
規則一
以符號@為C#語法開頭,只要遇到@開頭就會自動解析為C#
@if(A>B){
statement;
}@else{
statement;
}
規則二
只要是@{...}大括號區塊內可以編寫多行C#程式碼,不需重複使用@開頭
@{
int a=1;
int b=2;
string str="這是字串";
}
規則三
C#Inline表達式,將C#穿插在HTML中
<p>帳號:@Id </p>
<p>密碼:@Password</p>
<p>年紀:@Age</p>
規則四
C#程式區塊中HTML隱式轉換,若@{...}夾雜HTML語法,Razor會自動隱式轉換,將該部分輸出為HTML
@{
if(A>B){
<p>@A 比較大</p>//需要特別注意若在區塊內遇到HTML的Tag,在Tag之後的變數需要再加上@,否則無法正確輸出
}
}
規則五
註解
@* ... *@//單行與多行都可使用
規則六
Razor明確表達式
@(...)//括號內會明確指示是C#運算式
規則七
HTML與JS的編碼與不編碼
var msg = @"<button type='button' onclick='alert(""Hello World"")'>HTML與JS的編碼與不編碼</button>";
<p>@(msg)</p>//使用@(...)會把HTML與JS編碼成純文字,增加網站安全性
<p>@Html.Raw(msg)</p>//不會做編碼,會顯示原始的字串